@nice2dev/ui-graphics 1.0.5 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/cjs/animation/AnimationEditor.js +6 -5
  2. package/dist/cjs/animation/AnimationEditor.js.map +1 -1
  3. package/dist/cjs/animation/Audience.js +2 -2
  4. package/dist/cjs/animation/Audience.js.map +1 -1
  5. package/dist/cjs/core/LocalUI.js +5 -4
  6. package/dist/cjs/core/LocalUI.js.map +1 -1
  7. package/dist/cjs/game/GameAsset2dEditor.js +20 -19
  8. package/dist/cjs/game/GameAsset2dEditor.js.map +1 -1
  9. package/dist/cjs/packages/ui/dist/NiceButton-DmTHNHet.js +453 -0
  10. package/dist/cjs/packages/ui/dist/NiceButton-DmTHNHet.js.map +1 -0
  11. package/dist/cjs/packages/ui/dist/NiceErrorBoundary-D1hh5GGe.js +543 -0
  12. package/dist/cjs/packages/ui/dist/NiceErrorBoundary-D1hh5GGe.js.map +1 -0
  13. package/dist/cjs/packages/ui/dist/NiceModuleLifecyclePanel-BapdidD6.js +4772 -0
  14. package/dist/cjs/packages/ui/dist/NiceModuleLifecyclePanel-BapdidD6.js.map +1 -0
  15. package/dist/cjs/packages/ui/dist/NicePinCodeInput-4q8yULuo.js +11329 -0
  16. package/dist/cjs/packages/ui/dist/NicePinCodeInput-4q8yULuo.js.map +1 -0
  17. package/dist/cjs/packages/ui/dist/NiceSavedQueryPanel-DUw8plYP.js +5544 -0
  18. package/dist/cjs/packages/ui/dist/NiceSavedQueryPanel-DUw8plYP.js.map +1 -0
  19. package/dist/cjs/packages/ui/dist/NiceStockChart-Cpmv9_Cc.js +2244 -0
  20. package/dist/cjs/packages/ui/dist/NiceStockChart-Cpmv9_Cc.js.map +1 -0
  21. package/dist/cjs/packages/ui/dist/NiceToggle-C1UKGXmJ.js +212 -0
  22. package/dist/cjs/packages/ui/dist/NiceToggle-C1UKGXmJ.js.map +1 -0
  23. package/dist/cjs/packages/ui/dist/NiceWindow-D1awkyFl.js +697 -0
  24. package/dist/cjs/packages/ui/dist/NiceWindow-D1awkyFl.js.map +1 -0
  25. package/dist/cjs/packages/ui/dist/core-CfXsl755.js +9597 -0
  26. package/dist/cjs/packages/ui/dist/core-CfXsl755.js.map +1 -0
  27. package/dist/cjs/packages/ui/dist/index-CNwVELPJ.js +31214 -0
  28. package/dist/cjs/packages/ui/dist/index-CNwVELPJ.js.map +1 -0
  29. package/dist/cjs/packages/ui/dist/index-x8mRM4Jc.js +20 -0
  30. package/dist/cjs/packages/ui/dist/index-x8mRM4Jc.js.map +1 -0
  31. package/dist/cjs/pixel/PixelEditor.js +5 -3
  32. package/dist/cjs/pixel/PixelEditor.js.map +1 -1
  33. package/dist/cjs/pixel/PixelEditorMenuBar.js +2 -2
  34. package/dist/cjs/pixel/PixelEditorMenuBar.js.map +1 -1
  35. package/dist/cjs/pixel/PixelEditorRightPanel.js +5 -3
  36. package/dist/cjs/pixel/PixelEditorRightPanel.js.map +1 -1
  37. package/dist/cjs/pixel/PixelEditorTimeline.js +3 -2
  38. package/dist/cjs/pixel/PixelEditorTimeline.js.map +1 -1
  39. package/dist/cjs/pixel/PixelEditorToolbar.js +2 -2
  40. package/dist/cjs/pixel/PixelEditorToolbar.js.map +1 -1
  41. package/dist/cjs/pixel/SpriteGeneratorPanel.js +10 -8
  42. package/dist/cjs/pixel/SpriteGeneratorPanel.js.map +1 -1
  43. package/dist/cjs/vector/VectorEditor.js +5 -3
  44. package/dist/cjs/vector/VectorEditor.js.map +1 -1
  45. package/dist/cjs/vector/VectorEditorMenuBar.js +4 -3
  46. package/dist/cjs/vector/VectorEditorMenuBar.js.map +1 -1
  47. package/dist/cjs/vector/VectorEditorRightPanel.js +15 -13
  48. package/dist/cjs/vector/VectorEditorRightPanel.js.map +1 -1
  49. package/dist/esm/animation/AnimationEditor.js +6 -5
  50. package/dist/esm/animation/AnimationEditor.js.map +1 -1
  51. package/dist/esm/animation/Audience.js +2 -2
  52. package/dist/esm/core/LocalUI.js +5 -4
  53. package/dist/esm/core/LocalUI.js.map +1 -1
  54. package/dist/esm/game/GameAsset2dEditor.js +20 -19
  55. package/dist/esm/game/GameAsset2dEditor.js.map +1 -1
  56. package/dist/esm/packages/ui/dist/NiceButton-DmTHNHet.js +448 -0
  57. package/dist/esm/packages/ui/dist/NiceButton-DmTHNHet.js.map +1 -0
  58. package/dist/esm/packages/ui/dist/NiceErrorBoundary-D1hh5GGe.js +533 -0
  59. package/dist/esm/packages/ui/dist/NiceErrorBoundary-D1hh5GGe.js.map +1 -0
  60. package/dist/esm/packages/ui/dist/NiceModuleLifecyclePanel-BapdidD6.js +4731 -0
  61. package/dist/esm/packages/ui/dist/NiceModuleLifecyclePanel-BapdidD6.js.map +1 -0
  62. package/dist/esm/packages/ui/dist/NicePinCodeInput-4q8yULuo.js +11259 -0
  63. package/dist/esm/packages/ui/dist/NicePinCodeInput-4q8yULuo.js.map +1 -0
  64. package/dist/esm/packages/ui/dist/NiceSavedQueryPanel-DUw8plYP.js +5527 -0
  65. package/dist/esm/packages/ui/dist/NiceSavedQueryPanel-DUw8plYP.js.map +1 -0
  66. package/dist/esm/packages/ui/dist/NiceStockChart-Cpmv9_Cc.js +2222 -0
  67. package/dist/esm/packages/ui/dist/NiceStockChart-Cpmv9_Cc.js.map +1 -0
  68. package/dist/esm/packages/ui/dist/NiceToggle-C1UKGXmJ.js +208 -0
  69. package/dist/esm/packages/ui/dist/NiceToggle-C1UKGXmJ.js.map +1 -0
  70. package/dist/esm/packages/ui/dist/NiceWindow-D1awkyFl.js +686 -0
  71. package/dist/esm/packages/ui/dist/NiceWindow-D1awkyFl.js.map +1 -0
  72. package/dist/esm/packages/ui/dist/core-CfXsl755.js +9419 -0
  73. package/dist/esm/packages/ui/dist/core-CfXsl755.js.map +1 -0
  74. package/dist/esm/packages/ui/dist/index-CNwVELPJ.js +31110 -0
  75. package/dist/esm/packages/ui/dist/index-CNwVELPJ.js.map +1 -0
  76. package/dist/esm/packages/ui/dist/index-x8mRM4Jc.js +18 -0
  77. package/dist/esm/packages/ui/dist/index-x8mRM4Jc.js.map +1 -0
  78. package/dist/esm/pixel/PixelEditor.js +5 -3
  79. package/dist/esm/pixel/PixelEditor.js.map +1 -1
  80. package/dist/esm/pixel/PixelEditorMenuBar.js +2 -2
  81. package/dist/esm/pixel/PixelEditorRightPanel.js +5 -3
  82. package/dist/esm/pixel/PixelEditorRightPanel.js.map +1 -1
  83. package/dist/esm/pixel/PixelEditorTimeline.js +3 -2
  84. package/dist/esm/pixel/PixelEditorTimeline.js.map +1 -1
  85. package/dist/esm/pixel/PixelEditorToolbar.js +2 -2
  86. package/dist/esm/pixel/SpriteGeneratorPanel.js +10 -8
  87. package/dist/esm/pixel/SpriteGeneratorPanel.js.map +1 -1
  88. package/dist/esm/vector/VectorEditor.js +5 -3
  89. package/dist/esm/vector/VectorEditor.js.map +1 -1
  90. package/dist/esm/vector/VectorEditorMenuBar.js +4 -3
  91. package/dist/esm/vector/VectorEditorMenuBar.js.map +1 -1
  92. package/dist/esm/vector/VectorEditorRightPanel.js +15 -13
  93. package/dist/esm/vector/VectorEditorRightPanel.js.map +1 -1
  94. package/package.json +1 -1
@@ -2,7 +2,8 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var React = require('react');
5
- var index = require('../packages/ui/dist/index.js');
5
+ var NiceButtonDmTHNHet = require('../packages/ui/dist/NiceButton-DmTHNHet.js');
6
+ var NicePinCodeInput4q8yULuo = require('../packages/ui/dist/NicePinCodeInput-4q8yULuo.js');
6
7
  var i18n = require('../core/i18n.js');
7
8
  var AnimatedPerson = require('./AnimatedPerson.js');
8
9
  var characterTypes = require('./characterTypes.js');
@@ -22,18 +23,18 @@ function ColorInputs({ value, onChange, }) {
22
23
  const base = clampPalette(value);
23
24
  const count = Math.min(3, Math.max(1, (_a = value === null || value === void 0 ? void 0 : value.length) !== null && _a !== void 0 ? _a : 1));
24
25
  const view = base.slice(0, count);
25
- return (jsxRuntime.jsxs("div", { className: "ntd-ae-color-inputs", children: [jsxRuntime.jsx("div", { className: "ntd-ae-colors", children: view.map((col, i) => (jsxRuntime.jsxs("label", { className: "ntd-ae-color-label", children: ["C", i + 1, jsxRuntime.jsx(index.NiceColorPicker, { value: col, onChange: (color) => {
26
+ return (jsxRuntime.jsxs("div", { className: "ntd-ae-color-inputs", children: [jsxRuntime.jsx("div", { className: "ntd-ae-colors", children: view.map((col, i) => (jsxRuntime.jsxs("label", { className: "ntd-ae-color-label", children: ["C", i + 1, jsxRuntime.jsx(NiceButtonDmTHNHet.N, { value: col, onChange: (color) => {
26
27
  const next = [...view];
27
28
  next[i] = color;
28
29
  onChange(next);
29
- } })] }, i))) }), jsxRuntime.jsxs("div", { className: "ntd-ae-color-btns", children: [jsxRuntime.jsx(index.NiceButton, { variant: "ghost", size: "sm", disabled: count <= 1, onClick: () => onChange(view.slice(0, Math.max(1, count - 1))), children: "-" }), jsxRuntime.jsx(index.NiceButton, { variant: "ghost", size: "sm", disabled: count >= 3, onClick: () => onChange([...view, view[view.length - 1] || "var(--anim-default-black, #000000)"]), children: "+" })] })] }));
30
+ } })] }, i))) }), jsxRuntime.jsxs("div", { className: "ntd-ae-color-btns", children: [jsxRuntime.jsx(NiceButtonDmTHNHet.c, { variant: "ghost", size: "sm", disabled: count <= 1, onClick: () => onChange(view.slice(0, Math.max(1, count - 1))), children: "-" }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { variant: "ghost", size: "sm", disabled: count >= 3, onClick: () => onChange([...view, view[view.length - 1] || "var(--anim-default-black, #000000)"]), children: "+" })] })] }));
30
31
  }
31
32
  function Row({ title, children }) {
32
33
  return (jsxRuntime.jsxs("div", { className: "ntd-ae-row", children: [jsxRuntime.jsx("div", { className: "ntd-ae-row-title", children: title }), jsxRuntime.jsx("div", { className: "ntd-ae-row-content", children: children })] }));
33
34
  }
34
35
  function FeatureEditor({ title, feature, variants, onChange, }) {
35
36
  const options = variants.map((v) => ({ value: v, label: v }));
36
- return (jsxRuntime.jsxs(Row, { title: title, children: [jsxRuntime.jsx(index.NiceSelect, { className: "ntd-ae-select", value: feature.variant, onChange: (val) => onChange({ ...feature, variant: val }), options: options }), jsxRuntime.jsx(ColorInputs, { value: feature.colors, onChange: (colors) => onChange({ ...feature, colors }) })] }));
37
+ return (jsxRuntime.jsxs(Row, { title: title, children: [jsxRuntime.jsx(NiceButtonDmTHNHet.a, { className: "ntd-ae-select", value: feature.variant, onChange: (val) => onChange({ ...feature, variant: val }), options: options }), jsxRuntime.jsx(ColorInputs, { value: feature.colors, onChange: (colors) => onChange({ ...feature, colors }) })] }));
37
38
  }
38
39
  /* ---------- component ---------- */
39
40
  function NiceAnimationEditor({ initialConfig, onChange, storageKey = STORAGE_KEY, onNotify, showJsonPanel = true, showPreview = true, className, style, }) {
@@ -101,7 +102,7 @@ function NiceAnimationEditor({ initialConfig, onChange, storageKey = STORAGE_KEY
101
102
  const updateFeature = (key, val) => {
102
103
  setCfg((prev) => ({ ...prev, [key]: val }));
103
104
  };
104
- return (jsxRuntime.jsxs("div", { className: `ntd-animation-editor ${className !== null && className !== void 0 ? className : ""}`, style: style, children: [jsxRuntime.jsxs("div", { className: "ntd-ae-controls", children: [jsxRuntime.jsx(Row, { title: t("characterEditor.name", "Name"), children: jsxRuntime.jsx(index.NiceTextInput, { className: "ntd-ae-input", value: cfg.name || "", onChange: (val) => setCfg({ ...cfg, name: val }), placeholder: t("characterEditor.namePlaceholder", "Character name") }) }), jsxRuntime.jsxs(Row, { title: t("characters.size", "Size"), children: [jsxRuntime.jsx(index.NiceSlider, { min: 140, max: 300, value: (_a = cfg.size) !== null && _a !== void 0 ? _a : 180, onChange: (val) => setCfg({ ...cfg, size: val }) }), jsxRuntime.jsxs("span", { className: "ntd-ae-size-value", children: [(_b = cfg.size) !== null && _b !== void 0 ? _b : 180, "px"] })] }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.faceShape", "Face"), feature: cfg.face, variants: characterTypes.VARIANTS.face, onChange: (v) => updateFeature("face", v) }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.hairstyle", "Hair"), feature: cfg.hair, variants: characterTypes.VARIANTS.hair, onChange: (v) => updateFeature("hair", v) }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.eyes", "Eyes"), feature: cfg.eyes, variants: characterTypes.VARIANTS.eyes, onChange: (v) => updateFeature("eyes", v) }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.nose", "Nose"), feature: cfg.nose, variants: characterTypes.VARIANTS.nose, onChange: (v) => updateFeature("nose", v) }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.mouth", "Mouth"), feature: cfg.mouth, variants: characterTypes.VARIANTS.mouth, onChange: (v) => updateFeature("mouth", v) }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.clothing", "Outfit"), feature: cfg.outfit, variants: characterTypes.VARIANTS.outfit, onChange: (v) => updateFeature("outfit", v) }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.headwear", "Headwear"), feature: cfg.headwear, variants: characterTypes.VARIANTS.headwear, onChange: (v) => updateFeature("headwear", v) }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.prop", "Prop"), feature: cfg.prop, variants: characterTypes.VARIANTS.prop, onChange: (v) => updateFeature("prop", v) }), jsxRuntime.jsxs("div", { className: "ntd-ae-action-row", children: [jsxRuntime.jsxs(index.NiceButton, { className: "ntd-ae-btn", variant: "ghost", onClick: randomizeColors, children: ["\uD83C\uDFB2 ", t("characterEditor.randomizeColors", "Randomize colors")] }), jsxRuntime.jsxs(index.NiceButton, { className: "ntd-ae-btn", variant: "ghost", onClick: downloadJson, children: ["\u2B07 ", t("characters.downloadJson", "Download JSON")] })] }), showJsonPanel && (jsxRuntime.jsxs("div", { className: "ntd-ae-json-panel", children: [jsxRuntime.jsx("div", { className: "ntd-ae-json-label", children: t("characterEditor.jsonSection", "JSON") }), jsxRuntime.jsx(index.NiceTextArea, { className: "ntd-ae-textarea", value: json, onChange: (val) => setJson(val) }), jsxRuntime.jsxs("div", { className: "ntd-ae-json-actions", children: [jsxRuntime.jsx(index.NiceButton, { className: "ntd-ae-btn", variant: "primary", onClick: applyJson, children: t("characterEditor.applyJson", "Apply JSON") }), jsxRuntime.jsx(index.NiceButton, { className: "ntd-ae-btn", variant: "ghost", onClick: () => navigator.clipboard.writeText(JSON.stringify(cfg, null, 2)), children: t("characterEditor.copyToClipboard", "Copy") })] })] }))] }), showPreview && (jsxRuntime.jsxs("div", { className: "ntd-ae-preview", children: [jsxRuntime.jsx("div", { className: "ntd-ae-preview-label", children: t("characterEditor.preview", "Preview") }), jsxRuntime.jsx(AnimatedPerson, { character: cfg, score: 10, startPose: "idle" })] }))] }));
105
+ return (jsxRuntime.jsxs("div", { className: `ntd-animation-editor ${className !== null && className !== void 0 ? className : ""}`, style: style, children: [jsxRuntime.jsxs("div", { className: "ntd-ae-controls", children: [jsxRuntime.jsx(Row, { title: t("characterEditor.name", "Name"), children: jsxRuntime.jsx(NiceButtonDmTHNHet.b, { className: "ntd-ae-input", value: cfg.name || "", onChange: (val) => setCfg({ ...cfg, name: val }), placeholder: t("characterEditor.namePlaceholder", "Character name") }) }), jsxRuntime.jsxs(Row, { title: t("characters.size", "Size"), children: [jsxRuntime.jsx(NicePinCodeInput4q8yULuo.U, { min: 140, max: 300, value: (_a = cfg.size) !== null && _a !== void 0 ? _a : 180, onChange: (val) => setCfg({ ...cfg, size: val }) }), jsxRuntime.jsxs("span", { className: "ntd-ae-size-value", children: [(_b = cfg.size) !== null && _b !== void 0 ? _b : 180, "px"] })] }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.faceShape", "Face"), feature: cfg.face, variants: characterTypes.VARIANTS.face, onChange: (v) => updateFeature("face", v) }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.hairstyle", "Hair"), feature: cfg.hair, variants: characterTypes.VARIANTS.hair, onChange: (v) => updateFeature("hair", v) }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.eyes", "Eyes"), feature: cfg.eyes, variants: characterTypes.VARIANTS.eyes, onChange: (v) => updateFeature("eyes", v) }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.nose", "Nose"), feature: cfg.nose, variants: characterTypes.VARIANTS.nose, onChange: (v) => updateFeature("nose", v) }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.mouth", "Mouth"), feature: cfg.mouth, variants: characterTypes.VARIANTS.mouth, onChange: (v) => updateFeature("mouth", v) }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.clothing", "Outfit"), feature: cfg.outfit, variants: characterTypes.VARIANTS.outfit, onChange: (v) => updateFeature("outfit", v) }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.headwear", "Headwear"), feature: cfg.headwear, variants: characterTypes.VARIANTS.headwear, onChange: (v) => updateFeature("headwear", v) }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.prop", "Prop"), feature: cfg.prop, variants: characterTypes.VARIANTS.prop, onChange: (v) => updateFeature("prop", v) }), jsxRuntime.jsxs("div", { className: "ntd-ae-action-row", children: [jsxRuntime.jsxs(NiceButtonDmTHNHet.c, { className: "ntd-ae-btn", variant: "ghost", onClick: randomizeColors, children: ["\uD83C\uDFB2 ", t("characterEditor.randomizeColors", "Randomize colors")] }), jsxRuntime.jsxs(NiceButtonDmTHNHet.c, { className: "ntd-ae-btn", variant: "ghost", onClick: downloadJson, children: ["\u2B07 ", t("characters.downloadJson", "Download JSON")] })] }), showJsonPanel && (jsxRuntime.jsxs("div", { className: "ntd-ae-json-panel", children: [jsxRuntime.jsx("div", { className: "ntd-ae-json-label", children: t("characterEditor.jsonSection", "JSON") }), jsxRuntime.jsx(NicePinCodeInput4q8yULuo.X, { className: "ntd-ae-textarea", value: json, onChange: (val) => setJson(val) }), jsxRuntime.jsxs("div", { className: "ntd-ae-json-actions", children: [jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: "ntd-ae-btn", variant: "primary", onClick: applyJson, children: t("characterEditor.applyJson", "Apply JSON") }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: "ntd-ae-btn", variant: "ghost", onClick: () => navigator.clipboard.writeText(JSON.stringify(cfg, null, 2)), children: t("characterEditor.copyToClipboard", "Copy") })] })] }))] }), showPreview && (jsxRuntime.jsxs("div", { className: "ntd-ae-preview", children: [jsxRuntime.jsx("div", { className: "ntd-ae-preview-label", children: t("characterEditor.preview", "Preview") }), jsxRuntime.jsx(AnimatedPerson, { character: cfg, score: 10, startPose: "idle" })] }))] }));
105
106
  }
106
107
  /** @deprecated Use NiceAnimationEditor */
107
108
  const AnimationEditor = NiceAnimationEditor;
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationEditor.js","sources":["../../../src/animation/AnimationEditor.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx","NiceColorPicker","NiceButton","NiceSelect","useNiceTranslation","useState","DEFAULT_CHARACTER","useEffect","NiceTextInput","NiceSlider","VARIANTS","NiceTextArea"],"mappings":";;;;;;;;;AAOA,MAAM,WAAW,GAAG,qCAAqC;AAEzD;AACA,SAAS,YAAY,CAAC,MAAgB,EAAA;AAClC,IAAA,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACpC,IAAA,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC;AAChE,IAAA,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;AAAE,QAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5C,IAAA,OAAO,CAAC;AACZ;AAEA,SAAS,WAAW,CAAC,EACjB,KAAK,EACL,QAAQ,GAIX,EAAA;;AACG,IAAA,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAA,EAAA,GAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAA,MAAA,GAAL,KAAK,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAC,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;IACjC,QACIA,yBAAK,SAAS,EAAC,qBAAqB,EAAA,QAAA,EAAA,CAChCC,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,eAAe,YACzB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MACbD,eAAA,CAAA,OAAA,EAAA,EAAe,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAA,CAAA,GAAA,EACvC,CAAC,GAAG,CAAC,EACPC,cAAA,CAACC,qBAAe,IACZ,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,CAAC,KAAK,KAAI;AAChB,gCAAA,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AACtB,gCAAA,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK;gCACf,QAAQ,CAAC,IAAI,CAAC;4BAClB,CAAC,EAAA,CACH,KATM,CAAC,CAUL,CACX,CAAC,EAAA,CACA,EACNF,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mBAAmB,EAAA,QAAA,EAAA,CAC9BC,cAAA,CAACE,gBAAU,EAAA,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,EACtD,OAAO,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAA,QAAA,EAAA,GAAA,EAAA,CAErD,EACbF,cAAA,CAACE,gBAAU,EAAA,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,EACtD,OAAO,EAAE,MAAM,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,oCAAoC,CAAC,CAAC,EAAA,QAAA,EAAA,GAAA,EAAA,CAExF,CAAA,EAAA,CACX,CAAA,EAAA,CACJ;AAEd;AAEA,SAAS,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAA8C,EAAA;IACxE,QACIH,yBAAK,SAAS,EAAC,YAAY,EAAA,QAAA,EAAA,CACvBC,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,kBAAkB,EAAA,QAAA,EAAE,KAAK,EAAA,CAAO,EAC/CA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,oBAAoB,YAAE,QAAQ,EAAA,CAAO,CAAA,EAAA,CAClD;AAEd;AAEA,SAAS,aAAa,CAAC,EACnB,KAAK,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,GAMX,EAAA;IACG,MAAM,OAAO,GAAiB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3E,IAAA,QACID,eAAA,CAAC,GAAG,EAAA,EAAC,KAAK,EAAE,KAAK,EAAA,QAAA,EAAA,CACbC,cAAA,CAACG,gBAAU,EAAA,EACP,SAAS,EAAC,eAAe,EACzB,KAAK,EAAE,OAAO,CAAC,OAAO,EACtB,QAAQ,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,GAAa,EAAE,CAAC,EACnE,OAAO,EAAE,OAAO,EAAA,CAClB,EACFH,cAAA,CAAC,WAAW,IACR,KAAK,EAAE,OAAO,CAAC,MAAM,EACrB,QAAQ,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC,EAAA,CACxD,CAAA,EAAA,CACA;AAEd;AAwBA;AAEM,SAAU,mBAAmB,CAAC,EAChC,aAAa,EACb,QAAQ,EACR,UAAU,GAAG,WAAW,EACxB,QAAQ,EACR,aAAa,GAAG,IAAI,EACpB,WAAW,GAAG,IAAI,EAClB,SAAS,EACT,KAAK,GACc,EAAA;;AACnB,IAAA,MAAM,EAAE,CAAC,EAAE,GAAGI,uBAAkB,EAAE;IAElC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAGC,cAAQ,CAAS,EAAE,CAAC;IAC5C,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAGA,cAAQ,CAAkB,MAAK;AACjD,QAAA,IAAI,aAAa;AAAE,YAAA,OAAO,aAAa;QACvC,IAAI,UAAU,EAAE;AACZ,YAAA,IAAI;gBACA,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC;AAC9C,gBAAA,OAAO,KAAK,GAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAqB,GAAGC,gCAAiB;YAC7E;AAAE,YAAA,OAAA,EAAA,EAAM;AACJ,gBAAA,OAAOA,gCAAiB;YAC5B;QACJ;AACA,QAAA,OAAOA,gCAAiB;AAC5B,IAAA,CAAC,CAAC;IAEFC,eAAS,CAAC,MAAK;AACX,QAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACrC,IAAI,UAAU,EAAE;AACZ,YAAA,IAAI;AAAE,gBAAA,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAAE;AAAE,YAAA,oBAAoB,EAAA,EAAd,eAAe;QACxF;AACA,QAAA,QAAQ,aAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,CAAG,GAAG,CAAC;IACnB,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAE/B,MAAM,SAAS,GAAG,MAAK;AACnB,QAAA,IAAI;YACA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoB;YAClD,MAAM,CAAC,MAAM,CAAC;AACd,YAAA,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAR,QAAQ,CAAG,CAAC,CAAC,6BAA6B,EAAE,cAAc,CAAC,EAAE,SAAS,CAAC;QAC3E;AAAE,QAAA,OAAA,EAAA,EAAM;AACJ,YAAA,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,CAAG,CAAC,CAAC,6BAA6B,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC;QACzE;AACJ,IAAA,CAAC;IAED,MAAM,YAAY,GAAG,MAAK;QACtB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;QACnF,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;QACrC,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACrC,QAAA,CAAC,CAAC,IAAI,GAAG,GAAG;QACZ,CAAC,CAAC,QAAQ,GAAG,CAAA,EAAG,GAAG,CAAC,IAAI,IAAI,WAAW,CAAA,KAAA,CAAO;QAC9C,CAAC,CAAC,KAAK,EAAE;AACT,QAAA,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC;AAC5B,IAAA,CAAC;IAED,MAAM,eAAe,GAAG,MAAK;AACzB,QAAA,MAAM,IAAI,GAAG,MAAM,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;QAC3F,MAAM,KAAK,GAAG,CAAC,CAAgB,MAAqB,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAC/F,QAAA,MAAM,CAAC;AACH,YAAA,GAAG,GAAG;AACN,YAAA,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACrB,YAAA,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACrB,YAAA,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACrB,YAAA,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACrB,YAAA,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACvB,YAAA,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;AACzB,YAAA,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC7B,YAAA,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACxB,SAAA,CAAC;AACN,IAAA,CAAC;AAED,IAAA,MAAM,aAAa,GAAG,CAAkC,GAAM,EAAE,GAAuB,KAAI;AACvF,QAAA,MAAM,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AAC/C,IAAA,CAAC;AAED,IAAA,QACIR,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,qBAAA,EAAwB,SAAS,KAAA,IAAA,IAAT,SAAS,KAAA,MAAA,GAAT,SAAS,GAAI,EAAE,CAAA,CAAE,EAAE,KAAK,EAAE,KAAK,EAAA,QAAA,EAAA,CACnEA,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iBAAiB,EAAA,QAAA,EAAA,CAC5BC,cAAA,CAAC,GAAG,EAAA,EAAC,KAAK,EAAE,CAAC,CAAC,sBAAsB,EAAE,MAAM,CAAC,YACzCA,cAAA,CAACQ,mBAAa,IACV,SAAS,EAAC,cAAc,EACxB,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,EACrB,QAAQ,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAChD,WAAW,EAAE,CAAC,CAAC,iCAAiC,EAAE,gBAAgB,CAAC,EAAA,CACrE,EAAA,CACA,EACNT,eAAA,CAAC,GAAG,EAAA,EAAC,KAAK,EAAE,CAAC,CAAC,iBAAiB,EAAE,MAAM,CAAC,EAAA,QAAA,EAAA,CACpCC,cAAA,CAACS,gBAAU,IAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAA,GAAG,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG,EAClD,QAAQ,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAA,CAAI,EACxDV,eAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,mBAAmB,aAAE,CAAA,EAAA,GAAA,GAAG,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG,EAAA,IAAA,CAAA,EAAA,CAAU,CAAA,EAAA,CAC5D,EACNC,cAAA,CAAC,aAAa,EAAA,EAAC,KAAK,EAAE,CAAC,CAAC,sBAAsB,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EACtE,QAAQ,EAAEU,uBAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,EAAA,CAAI,EAC1EV,cAAA,CAAC,aAAa,EAAA,EAAC,KAAK,EAAE,CAAC,CAAC,sBAAsB,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EACtE,QAAQ,EAAEU,uBAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,EAAA,CAAI,EAC1EV,cAAA,CAAC,aAAa,IAAC,KAAK,EAAE,CAAC,CAAC,iBAAiB,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EACjE,QAAQ,EAAEU,uBAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,EAAA,CAAI,EAC1EV,cAAA,CAAC,aAAa,IAAC,KAAK,EAAE,CAAC,CAAC,iBAAiB,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EACjE,QAAQ,EAAEU,uBAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,EAAA,CAAI,EAC1EV,cAAA,CAAC,aAAa,IAAC,KAAK,EAAE,CAAC,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,EACpE,QAAQ,EAAEU,uBAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,EAAA,CAAI,EAC5EV,eAAC,aAAa,EAAA,EAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EACzE,QAAQ,EAAEU,uBAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAI,EAC9EV,cAAA,CAAC,aAAa,EAAA,EAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,EAC7E,QAAQ,EAAEU,uBAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,EAAA,CAAI,EAClFV,cAAA,CAAC,aAAa,EAAA,EAAC,KAAK,EAAE,CAAC,CAAC,iBAAiB,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EACjE,QAAQ,EAAEU,uBAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,EAAA,CAAI,EAE1EX,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mBAAmB,aAC9BA,eAAA,CAACG,gBAAU,EAAA,EAAC,SAAS,EAAC,YAAY,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAE,eAAe,EAAA,QAAA,EAAA,CAAA,eAAA,EACnE,CAAC,CAAC,iCAAiC,EAAE,kBAAkB,CAAC,CAAA,EAAA,CACnD,EACbH,eAAA,CAACG,gBAAU,IAAC,SAAS,EAAC,YAAY,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAE,YAAY,EAAA,QAAA,EAAA,CAAA,SAAA,EACjE,CAAC,CAAC,yBAAyB,EAAE,eAAe,CAAC,CAAA,EAAA,CACvC,CAAA,EAAA,CACX,EAEL,aAAa,KACVH,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mBAAmB,aAC9BC,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mBAAmB,EAAA,QAAA,EAAE,CAAC,CAAC,6BAA6B,EAAE,MAAM,CAAC,EAAA,CAAO,EACnFA,cAAA,CAACW,kBAAY,EAAA,EACT,SAAS,EAAC,iBAAiB,EAC3B,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,EAAA,CACjC,EACFZ,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qBAAqB,aAChCC,cAAA,CAACE,gBAAU,IAAC,SAAS,EAAC,YAAY,EAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,SAAS,EAAA,QAAA,EAClE,CAAC,CAAC,2BAA2B,EAAE,YAAY,CAAC,EAAA,CACpC,EACbF,eAACE,gBAAU,EAAA,EAAC,SAAS,EAAC,YAAY,EAAC,OAAO,EAAC,OAAO,EAC9C,OAAO,EAAE,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAA,QAAA,EACzE,CAAC,CAAC,iCAAiC,EAAE,MAAM,CAAC,EAAA,CACpC,CAAA,EAAA,CACX,IACJ,CACT,CAAA,EAAA,CACC,EAEL,WAAW,KACRH,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,gBAAgB,EAAA,QAAA,EAAA,CAC3BC,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,sBAAsB,EAAA,QAAA,EAAE,CAAC,CAAC,yBAAyB,EAAE,SAAS,CAAC,EAAA,CAAO,EACrFA,cAAA,CAAC,cAAc,EAAA,EAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAC,MAAM,EAAA,CAAG,IAC5D,CACT,CAAA,EAAA,CACC;AAEd;AAEA;AACO,MAAM,eAAe,GAAG;;;;;"}
1
+ {"version":3,"file":"AnimationEditor.js","sources":["../../../src/animation/AnimationEditor.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx","NiceColorPicker","NiceButton","NiceSelect","useNiceTranslation","useState","DEFAULT_CHARACTER","useEffect","NiceTextInput","NiceSlider","VARIANTS","NiceTextArea"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var React = require('react');
5
- var index = require('../packages/ui/dist/index.js');
5
+ var NiceButtonDmTHNHet = require('../packages/ui/dist/NiceButton-DmTHNHet.js');
6
6
  var AnimatedPerson = require('./AnimatedPerson.js');
7
7
  var characterTypes = require('./characterTypes.js');
8
8
  var choreoDSL = require('./choreoDSL.js');
@@ -53,7 +53,7 @@ const NiceAudience = ({ count = 36, columns = 12 }) => {
53
53
  display: "grid",
54
54
  gap: 8,
55
55
  gridTemplateColumns: `repeat(${columns}, minmax(0, 1fr))`,
56
- }, children: people.map((c, i) => (jsxRuntime.jsx(AnimatedPerson, { character: c, score: 10, startPose: "idle", onReady: (fx) => (refs.current[i] = fx) }, i))) }), jsxRuntime.jsxs("div", { style: { display: "flex", gap: 8 }, children: [jsxRuntime.jsx(index.NiceButton, { variant: "ghost", size: "sm", onClick: wave, children: "Wave" }), jsxRuntime.jsx(index.NiceButton, { variant: "ghost", size: "sm", onClick: cheer, children: "Cheer" })] })] }));
56
+ }, children: people.map((c, i) => (jsxRuntime.jsx(AnimatedPerson, { character: c, score: 10, startPose: "idle", onReady: (fx) => (refs.current[i] = fx) }, i))) }), jsxRuntime.jsxs("div", { style: { display: "flex", gap: 8 }, children: [jsxRuntime.jsx(NiceButtonDmTHNHet.c, { variant: "ghost", size: "sm", onClick: wave, children: "Wave" }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { variant: "ghost", size: "sm", onClick: cheer, children: "Cheer" })] })] }));
57
57
  };
58
58
 
59
59
  module.exports = NiceAudience;
@@ -1 +1 @@
1
- {"version":3,"file":"Audience.js","sources":["../../../src/animation/Audience.tsx"],"sourcesContent":[null],"names":["DEFAULT_CHARACTER","runRounds","seq","_jsxs","_jsx","NiceButton"],"mappings":"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"}
1
+ {"version":3,"file":"Audience.js","sources":["../../../src/animation/Audience.tsx"],"sourcesContent":[null],"names":["DEFAULT_CHARACTER","runRounds","seq","_jsxs","_jsx","NiceButton"],"mappings":"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"}
@@ -2,7 +2,8 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var React = require('react');
5
- var index = require('../packages/ui/dist/index.js');
5
+ var NiceButtonDmTHNHet = require('../packages/ui/dist/NiceButton-DmTHNHet.js');
6
+ var NicePinCodeInput4q8yULuo = require('../packages/ui/dist/NicePinCodeInput-4q8yULuo.js');
6
7
 
7
8
  const variantMap = {
8
9
  "dark": "secondary",
@@ -17,7 +18,7 @@ const sizeMap = {
17
18
  "md": "md",
18
19
  };
19
20
  const Button = ({ variant = "dark", size = "md", className = "", children, disabled, onClick, title, style, }) => {
20
- return (jsxRuntime.jsx(index.NiceButton, { variant: variantMap[variant], size: sizeMap[size], className: className, disabled: disabled, onClick: onClick, "aria-label": title, style: style, children: children }));
21
+ return (jsxRuntime.jsx(NiceButtonDmTHNHet.c, { variant: variantMap[variant], size: sizeMap[size], className: className, disabled: disabled, onClick: onClick, "aria-label": title, style: style, children: children }));
21
22
  };
22
23
  const RangeInput = ({ accentColor, style, className = "", value, min = 0, max = 100, step = 1, onChange, onMouseUp, }) => {
23
24
  const handleChange = React.useCallback((val) => {
@@ -33,7 +34,7 @@ const RangeInput = ({ accentColor, style, className = "", value, min = 0, max =
33
34
  onMouseUp({});
34
35
  }
35
36
  }, [onChange, onMouseUp]);
36
- return (jsxRuntime.jsx(index.NiceSlider, { value: typeof value === "number" ? value : Number(value) || 0, min: Number(min), max: Number(max), step: Number(step), className: className, style: { ...style, "--nice-accent": accentColor }, onChange: handleChange, showValue: false }));
37
+ return (jsxRuntime.jsx(NicePinCodeInput4q8yULuo.U, { value: typeof value === "number" ? value : Number(value) || 0, min: Number(min), max: Number(max), step: Number(step), className: className, style: { ...style, "--nice-accent": accentColor }, onChange: handleChange, showValue: false }));
37
38
  };
38
39
  const TextArea = ({ className = "", value, onChange, rows, placeholder, disabled, style, }) => {
39
40
  const handleChange = React.useCallback((newValue) => {
@@ -45,7 +46,7 @@ const TextArea = ({ className = "", value, onChange, rows, placeholder, disabled
45
46
  onChange(syntheticEvent);
46
47
  }
47
48
  }, [onChange]);
48
- return (jsxRuntime.jsx(index.NiceTextArea, { className: className, value: typeof value === "string" ? value : String(value !== null && value !== void 0 ? value : ""), onChange: handleChange, rows: rows, placeholder: placeholder, disabled: disabled, style: style }));
49
+ return (jsxRuntime.jsx(NicePinCodeInput4q8yULuo.X, { className: className, value: typeof value === "string" ? value : String(value !== null && value !== void 0 ? value : ""), onChange: handleChange, rows: rows, placeholder: placeholder, disabled: disabled, style: style }));
49
50
  };
50
51
 
51
52
  exports.Button = Button;
@@ -1 +1 @@
1
- {"version":3,"file":"LocalUI.js","sources":["../../../src/core/LocalUI.tsx"],"sourcesContent":[null],"names":["_jsx","NiceButton","useCallback","NiceSlider","NiceTextArea"],"mappings":"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"}
1
+ {"version":3,"file":"LocalUI.js","sources":["../../../src/core/LocalUI.tsx"],"sourcesContent":[null],"names":["_jsx","NiceButton","useCallback","NiceSlider","NiceTextArea"],"mappings":"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"}
@@ -4,14 +4,15 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var React = require('react');
5
5
  var GameAsset2dEditor_module = require('./GameAsset2dEditor.module.css.js');
6
6
  var useGameAssetEditor = require('./useGameAssetEditor.js');
7
- var index = require('../packages/ui/dist/index.js');
7
+ var NiceButtonDmTHNHet = require('../packages/ui/dist/NiceButton-DmTHNHet.js');
8
+ var NiceToggleC1UKGXmJ = require('../packages/ui/dist/NiceToggle-C1UKGXmJ.js');
8
9
 
9
10
  /* ────────────────────────────────────────────────────────────────
10
11
  MENU BAR
11
12
  ──────────────────────────────────────────────────────────────── */
12
13
  const MenuBar = ({ api }) => {
13
14
  const fileInputRef = React.useRef(null);
14
- return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.menuBar, children: [jsxRuntime.jsx("h3", { children: "\uD83C\uDFAE Game Asset Editor" }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.menuGroup, children: [jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: () => api.newProject('New Project'), children: "\uD83D\uDCC4 New" }), jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "\uD83D\uDCC2 Open" }), jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.saveProject, children: "\uD83D\uDCBE Save" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.spacer }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.menuGroup, children: [jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.undo, disabled: !api.canUndo, children: "\u21A9 Undo" }), jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.redo, disabled: !api.canRedo, children: "\u21AA Redo" })] }), jsxRuntime.jsx("input", { ref: fileInputRef, type: "file", accept: ".json", style: { display: 'none' }, onChange: e => {
15
+ return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.menuBar, children: [jsxRuntime.jsx("h3", { children: "\uD83C\uDFAE Game Asset Editor" }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.menuGroup, children: [jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: () => api.newProject('New Project'), children: "\uD83D\uDCC4 New" }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "\uD83D\uDCC2 Open" }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.saveProject, children: "\uD83D\uDCBE Save" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.spacer }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.menuGroup, children: [jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.undo, disabled: !api.canUndo, children: "\u21A9 Undo" }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.redo, disabled: !api.canRedo, children: "\u21AA Redo" })] }), jsxRuntime.jsx("input", { ref: fileInputRef, type: "file", accept: ".json", style: { display: 'none' }, onChange: e => {
15
16
  var _a;
16
17
  const file = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0];
17
18
  if (file)
@@ -29,7 +30,7 @@ const ModeTabs = ({ api }) => {
29
30
  { id: 'animation', label: 'Animation', icon: '🎬' },
30
31
  { id: 'effects', label: 'Effects', icon: '✨' },
31
32
  ];
32
- return (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.modeTabs, children: modes.map(mode => (jsxRuntime.jsxs(index.NiceButton, { className: `${GameAsset2dEditor_module.modeTab} ${api.editorState.mode === mode.id ? GameAsset2dEditor_module.active : ''}`, variant: api.editorState.mode === mode.id ? 'primary' : 'ghost', onClick: () => api.setMode(mode.id), children: [mode.icon, " ", mode.label] }, mode.id))) }));
33
+ return (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.modeTabs, children: modes.map(mode => (jsxRuntime.jsxs(NiceButtonDmTHNHet.c, { className: `${GameAsset2dEditor_module.modeTab} ${api.editorState.mode === mode.id ? GameAsset2dEditor_module.active : ''}`, variant: api.editorState.mode === mode.id ? 'primary' : 'ghost', onClick: () => api.setMode(mode.id), children: [mode.icon, " ", mode.label] }, mode.id))) }));
33
34
  };
34
35
  /* ────────────────────────────────────────────────────────────────
35
36
  TILE MAP TOOLBAR
@@ -44,7 +45,7 @@ const TileMapToolbar = ({ api }) => {
44
45
  { id: 'line', icon: '╱', label: 'Line' },
45
46
  { id: 'eyedropper', icon: '💧', label: 'Eyedropper' },
46
47
  ];
47
- return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.toolbar, children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.toolGroup, children: tools.map(tool => (jsxRuntime.jsx(index.NiceButton, { className: `${GameAsset2dEditor_module.toolBtn} ${api.editorState.tileMapTool === tool.id ? GameAsset2dEditor_module.active : ''}`, variant: api.editorState.tileMapTool === tool.id ? 'primary' : 'ghost', size: "sm", onClick: () => api.setTileMapTool(tool.id), title: tool.label, children: tool.icon }, tool.id))) }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.spacer }), jsxRuntime.jsx(index.NiceButton, { className: `${GameAsset2dEditor_module.toolBtn} ${api.editorState.showGrid ? GameAsset2dEditor_module.active : ''}`, variant: api.editorState.showGrid ? 'primary' : 'ghost', size: "sm", onClick: api.toggleGrid, title: "Toggle Grid", children: "\u229E" }), jsxRuntime.jsx(index.NiceButton, { className: `${GameAsset2dEditor_module.toolBtn} ${api.editorState.showCollision ? GameAsset2dEditor_module.active : ''}`, variant: api.editorState.showCollision ? 'primary' : 'ghost', size: "sm", onClick: api.toggleCollision, title: "Show Collision", children: "\u25C7" }), jsxRuntime.jsx(index.NiceButton, { className: `${GameAsset2dEditor_module.toolBtn} ${api.editorState.snapToGrid ? GameAsset2dEditor_module.active : ''}`, variant: api.editorState.snapToGrid ? 'primary' : 'ghost', size: "sm", onClick: api.toggleSnap, title: "Snap to Grid", children: "\u22A1" })] }));
48
+ return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.toolbar, children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.toolGroup, children: tools.map(tool => (jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: `${GameAsset2dEditor_module.toolBtn} ${api.editorState.tileMapTool === tool.id ? GameAsset2dEditor_module.active : ''}`, variant: api.editorState.tileMapTool === tool.id ? 'primary' : 'ghost', size: "sm", onClick: () => api.setTileMapTool(tool.id), title: tool.label, children: tool.icon }, tool.id))) }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.spacer }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: `${GameAsset2dEditor_module.toolBtn} ${api.editorState.showGrid ? GameAsset2dEditor_module.active : ''}`, variant: api.editorState.showGrid ? 'primary' : 'ghost', size: "sm", onClick: api.toggleGrid, title: "Toggle Grid", children: "\u229E" }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: `${GameAsset2dEditor_module.toolBtn} ${api.editorState.showCollision ? GameAsset2dEditor_module.active : ''}`, variant: api.editorState.showCollision ? 'primary' : 'ghost', size: "sm", onClick: api.toggleCollision, title: "Show Collision", children: "\u25C7" }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: `${GameAsset2dEditor_module.toolBtn} ${api.editorState.snapToGrid ? GameAsset2dEditor_module.active : ''}`, variant: api.editorState.snapToGrid ? 'primary' : 'ghost', size: "sm", onClick: api.toggleSnap, title: "Snap to Grid", children: "\u22A1" })] }));
48
49
  };
49
50
  /* ────────────────────────────────────────────────────────────────
50
51
  SPRITE SHEET TOOLBAR
@@ -52,14 +53,14 @@ const TileMapToolbar = ({ api }) => {
52
53
  const SpriteSheetToolbar = ({ api }) => {
53
54
  const [sliceWidth, setSliceWidth] = React.useState(16);
54
55
  const [sliceHeight, setSliceHeight] = React.useState(16);
55
- return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.toolbar, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.toolGroup, children: [jsxRuntime.jsx(index.NiceButton, { className: `${GameAsset2dEditor_module.toolBtn} ${api.editorState.spriteSheetTool === 'select' ? GameAsset2dEditor_module.active : ''}`, variant: api.editorState.spriteSheetTool === 'select' ? 'primary' : 'ghost', size: "sm", onClick: () => api.setSpriteSheetTool('select'), title: "Select", children: "\u2B1A" }), jsxRuntime.jsx(index.NiceButton, { className: `${GameAsset2dEditor_module.toolBtn} ${api.editorState.spriteSheetTool === 'slice' ? GameAsset2dEditor_module.active : ''}`, variant: api.editorState.spriteSheetTool === 'slice' ? 'primary' : 'ghost', size: "sm", onClick: () => api.setSpriteSheetTool('slice'), title: "Manual Slice", children: "\u2702" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.spacer }), jsxRuntime.jsxs("label", { style: { fontSize: 11, color: '#8892a8' }, children: ["Frame size:", jsxRuntime.jsx(index.NiceNumberInput, { value: sliceWidth, onChange: val => setSliceWidth(val !== null && val !== void 0 ? val : 16), style: { width: 40, margin: '0 4px' }, className: GameAsset2dEditor_module.panelInput }), "\u00D7", jsxRuntime.jsx(index.NiceNumberInput, { value: sliceHeight, onChange: val => setSliceHeight(val !== null && val !== void 0 ? val : 16), style: { width: 40, marginLeft: 4 }, className: GameAsset2dEditor_module.panelInput })] }), jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.btnSecondary, variant: "ghost", onClick: () => api.autoSlice(sliceWidth, sliceHeight), style: { marginLeft: 8 }, children: "Auto Slice" }), jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.btnSecondary, variant: "ghost", onClick: api.detectSprites, style: { marginLeft: 4 }, children: "Detect Sprites" })] }));
56
+ return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.toolbar, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.toolGroup, children: [jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: `${GameAsset2dEditor_module.toolBtn} ${api.editorState.spriteSheetTool === 'select' ? GameAsset2dEditor_module.active : ''}`, variant: api.editorState.spriteSheetTool === 'select' ? 'primary' : 'ghost', size: "sm", onClick: () => api.setSpriteSheetTool('select'), title: "Select", children: "\u2B1A" }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: `${GameAsset2dEditor_module.toolBtn} ${api.editorState.spriteSheetTool === 'slice' ? GameAsset2dEditor_module.active : ''}`, variant: api.editorState.spriteSheetTool === 'slice' ? 'primary' : 'ghost', size: "sm", onClick: () => api.setSpriteSheetTool('slice'), title: "Manual Slice", children: "\u2702" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.spacer }), jsxRuntime.jsxs("label", { style: { fontSize: 11, color: '#8892a8' }, children: ["Frame size:", jsxRuntime.jsx(NiceToggleC1UKGXmJ.a, { value: sliceWidth, onChange: val => setSliceWidth(val !== null && val !== void 0 ? val : 16), style: { width: 40, margin: '0 4px' }, className: GameAsset2dEditor_module.panelInput }), "\u00D7", jsxRuntime.jsx(NiceToggleC1UKGXmJ.a, { value: sliceHeight, onChange: val => setSliceHeight(val !== null && val !== void 0 ? val : 16), style: { width: 40, marginLeft: 4 }, className: GameAsset2dEditor_module.panelInput })] }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.btnSecondary, variant: "ghost", onClick: () => api.autoSlice(sliceWidth, sliceHeight), style: { marginLeft: 8 }, children: "Auto Slice" }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.btnSecondary, variant: "ghost", onClick: api.detectSprites, style: { marginLeft: 4 }, children: "Detect Sprites" })] }));
56
57
  };
57
58
  /* ────────────────────────────────────────────────────────────────
58
59
  TILE PALETTE (LEFT PANEL)
59
60
  ──────────────────────────────────────────────────────────────── */
60
61
  const TilePalette = ({ api }) => {
61
62
  const fileInputRef = React.useRef(null);
62
- return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.leftPanel, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelHeader, children: [jsxRuntime.jsx("span", { children: "Tiles" }), jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "+ Add" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, children: api.project.tileSets.length === 0 ? (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.emptyState, children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyStateText, children: "No tiles yet" }), jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.btnSecondary, variant: "ghost", onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "Import Tiles" })] })) : (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.tilePalette, children: api.project.tileSets.map(tile => (jsxRuntime.jsx("div", { className: `${GameAsset2dEditor_module.tileItem} ${api.editorState.selectedTileId === tile.id ? GameAsset2dEditor_module.selected : ''}`, onClick: () => api.selectTile(tile.id), title: tile.name, children: jsxRuntime.jsx("img", { src: tile.thumbnail, alt: tile.name }) }, tile.id))) })) }), jsxRuntime.jsx("input", { ref: fileInputRef, type: "file", accept: "image/*", style: { display: 'none' }, onChange: e => {
63
+ return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.leftPanel, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelHeader, children: [jsxRuntime.jsx("span", { children: "Tiles" }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "+ Add" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, children: api.project.tileSets.length === 0 ? (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.emptyState, children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyStateText, children: "No tiles yet" }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.btnSecondary, variant: "ghost", onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "Import Tiles" })] })) : (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.tilePalette, children: api.project.tileSets.map(tile => (jsxRuntime.jsx("div", { className: `${GameAsset2dEditor_module.tileItem} ${api.editorState.selectedTileId === tile.id ? GameAsset2dEditor_module.selected : ''}`, onClick: () => api.selectTile(tile.id), title: tile.name, children: jsxRuntime.jsx("img", { src: tile.thumbnail, alt: tile.name }) }, tile.id))) })) }), jsxRuntime.jsx("input", { ref: fileInputRef, type: "file", accept: "image/*", style: { display: 'none' }, onChange: e => {
63
64
  var _a;
64
65
  const file = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0];
65
66
  if (file)
@@ -72,10 +73,10 @@ const TilePalette = ({ api }) => {
72
73
  ──────────────────────────────────────────────────────────────── */
73
74
  const LayersPanel = ({ api }) => {
74
75
  const activeMap = api.project.tileMaps.find(m => m.id === api.editorState.activeTileMapId);
75
- return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.rightPanel, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelHeader, children: [jsxRuntime.jsx("span", { children: "Layers" }), jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.addLayer, disabled: !activeMap, children: "+ Add" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, children: activeMap ? (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.layersList, children: [...activeMap.layers].reverse().map(layer => (jsxRuntime.jsxs("div", { className: `${GameAsset2dEditor_module.layerItem} ${api.editorState.activeLayerId === layer.id ? GameAsset2dEditor_module.selected : ''}`, onClick: () => api.selectLayer(layer.id), children: [jsxRuntime.jsx(index.NiceButton, { className: `${GameAsset2dEditor_module.layerVisibility} ${!layer.visible ? GameAsset2dEditor_module.hidden : ''}`, variant: "ghost", size: "sm", onClick: e => {
76
+ return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.rightPanel, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelHeader, children: [jsxRuntime.jsx("span", { children: "Layers" }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.addLayer, disabled: !activeMap, children: "+ Add" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, children: activeMap ? (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.layersList, children: [...activeMap.layers].reverse().map(layer => (jsxRuntime.jsxs("div", { className: `${GameAsset2dEditor_module.layerItem} ${api.editorState.activeLayerId === layer.id ? GameAsset2dEditor_module.selected : ''}`, onClick: () => api.selectLayer(layer.id), children: [jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: `${GameAsset2dEditor_module.layerVisibility} ${!layer.visible ? GameAsset2dEditor_module.hidden : ''}`, variant: "ghost", size: "sm", onClick: e => {
76
77
  e.stopPropagation();
77
78
  api.toggleLayerVisibility(layer.id);
78
- }, children: layer.visible ? '👁' : '○' }), jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: layer.name }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerOpacity, children: [Math.round(layer.opacity * 100), "%"] })] }, layer.id))) })) : (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyState, children: jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyStateText, children: "No tile map selected" }) })) }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelHeader, children: [jsxRuntime.jsx("span", { children: "Maps" }), jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: () => api.createTileMap('New Map', 32, 32), children: "+ New" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, children: api.project.tileMaps.map(map => (jsxRuntime.jsxs("div", { className: `${GameAsset2dEditor_module.layerItem} ${api.editorState.activeTileMapId === map.id ? GameAsset2dEditor_module.selected : ''}`, onClick: () => api.selectTileMap(map.id), children: [jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: map.name }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerOpacity, children: [map.width, "\u00D7", map.height] })] }, map.id))) })] }));
79
+ }, children: layer.visible ? '👁' : '○' }), jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: layer.name }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerOpacity, children: [Math.round(layer.opacity * 100), "%"] })] }, layer.id))) })) : (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyState, children: jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyStateText, children: "No tile map selected" }) })) }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelHeader, children: [jsxRuntime.jsx("span", { children: "Maps" }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: () => api.createTileMap('New Map', 32, 32), children: "+ New" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, children: api.project.tileMaps.map(map => (jsxRuntime.jsxs("div", { className: `${GameAsset2dEditor_module.layerItem} ${api.editorState.activeTileMapId === map.id ? GameAsset2dEditor_module.selected : ''}`, onClick: () => api.selectTileMap(map.id), children: [jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: map.name }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerOpacity, children: [map.width, "\u00D7", map.height] })] }, map.id))) })] }));
79
80
  };
80
81
  /* ────────────────────────────────────────────────────────────────
81
82
  TILE MAP CANVAS
@@ -163,7 +164,7 @@ const TileMapCanvas = ({ api }) => {
163
164
  if (isDragging && (api.editorState.tileMapTool === 'brush' || api.editorState.tileMapTool === 'eraser')) {
164
165
  handleCanvasClick(e);
165
166
  }
166
- } })) : (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.emptyState, children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyStateText, children: "Create or select a tile map to start editing" }), jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.btnPrimary, variant: "primary", onClick: () => api.createTileMap('New Map', 32, 32), children: "Create Tile Map" })] })) }));
167
+ } })) : (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.emptyState, children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyStateText, children: "Create or select a tile map to start editing" }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.btnPrimary, variant: "primary", onClick: () => api.createTileMap('New Map', 32, 32), children: "Create Tile Map" })] })) }));
167
168
  };
168
169
  /* ────────────────────────────────────────────────────────────────
169
170
  SPRITE SHEET CANVAS
@@ -231,7 +232,7 @@ const SpriteSheetCanvas = ({ api }) => {
231
232
  }, [activeSheet, api]);
232
233
  return (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.viewport, children: activeSheet ? (jsxRuntime.jsx("canvas", { ref: canvasRef, className: GameAsset2dEditor_module.viewportCanvas, style: {
233
234
  transform: `translate(-50%, -50%) scale(${api.editorState.zoom})`,
234
- }, onClick: handleFrameClick })) : (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.emptyState, children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyStateText, children: "Import a sprite sheet to start" }), jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.btnPrimary, variant: "primary", onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "Import Sprite Sheet" }), jsxRuntime.jsx("input", { ref: fileInputRef, type: "file", accept: "image/*", style: { display: 'none' }, onChange: e => {
235
+ }, onClick: handleFrameClick })) : (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.emptyState, children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyStateText, children: "Import a sprite sheet to start" }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.btnPrimary, variant: "primary", onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "Import Sprite Sheet" }), jsxRuntime.jsx("input", { ref: fileInputRef, type: "file", accept: "image/*", style: { display: 'none' }, onChange: e => {
235
236
  var _a;
236
237
  const file = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0];
237
238
  if (file)
@@ -244,7 +245,7 @@ const SpriteSheetCanvas = ({ api }) => {
244
245
  ──────────────────────────────────────────────────────────────── */
245
246
  const SpriteSheetsList = ({ api }) => {
246
247
  const fileInputRef = React.useRef(null);
247
- return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.leftPanel, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelHeader, children: [jsxRuntime.jsx("span", { children: "Sprite Sheets" }), jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "+ Import" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, children: api.project.spriteSheets.length === 0 ? (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyState, children: jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyStateText, children: "No sprite sheets" }) })) : (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.layersList, children: api.project.spriteSheets.map(sheet => (jsxRuntime.jsxs("div", { className: `${GameAsset2dEditor_module.layerItem} ${api.editorState.activeSpriteSheetId === sheet.id ? GameAsset2dEditor_module.selected : ''}`, onClick: () => api.selectSpriteSheet(sheet.id), children: [jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: sheet.name }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerOpacity, children: [sheet.frames.length, " frames"] })] }, sheet.id))) })) }), jsxRuntime.jsx("input", { ref: fileInputRef, type: "file", accept: "image/*", style: { display: 'none' }, onChange: e => {
248
+ return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.leftPanel, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelHeader, children: [jsxRuntime.jsx("span", { children: "Sprite Sheets" }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "+ Import" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, children: api.project.spriteSheets.length === 0 ? (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyState, children: jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyStateText, children: "No sprite sheets" }) })) : (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.layersList, children: api.project.spriteSheets.map(sheet => (jsxRuntime.jsxs("div", { className: `${GameAsset2dEditor_module.layerItem} ${api.editorState.activeSpriteSheetId === sheet.id ? GameAsset2dEditor_module.selected : ''}`, onClick: () => api.selectSpriteSheet(sheet.id), children: [jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: sheet.name }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerOpacity, children: [sheet.frames.length, " frames"] })] }, sheet.id))) })) }), jsxRuntime.jsx("input", { ref: fileInputRef, type: "file", accept: "image/*", style: { display: 'none' }, onChange: e => {
248
249
  var _a;
249
250
  const file = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0];
250
251
  if (file)
@@ -265,7 +266,7 @@ const FramesPanel = ({ api }) => {
265
266
  setAnimName('');
266
267
  }
267
268
  }, [animName, api]);
268
- return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.rightPanel, children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelHeader, children: jsxRuntime.jsxs("span", { children: ["Frames (", (_a = activeSheet === null || activeSheet === void 0 ? void 0 : activeSheet.frames.length) !== null && _a !== void 0 ? _a : 0, ")"] }) }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, style: { maxHeight: 200 }, children: activeSheet === null || activeSheet === void 0 ? void 0 : activeSheet.frames.map(frame => (jsxRuntime.jsxs("div", { className: `${GameAsset2dEditor_module.layerItem} ${api.editorState.selectedFrameIds.includes(frame.id) ? GameAsset2dEditor_module.selected : ''}`, onClick: () => api.selectFrames([frame.id]), children: [jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: frame.name }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerOpacity, children: [frame.width, "\u00D7", frame.height] })] }, frame.id))) }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelHeader, children: jsxRuntime.jsx("span", { children: "Animations" }) }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelContent, children: [api.editorState.selectedFrameIds.length > 0 && (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelSection, children: [jsxRuntime.jsx(index.NiceTextInput, { className: GameAsset2dEditor_module.panelInput, placeholder: "Animation name...", value: animName, onChange: val => setAnimName(val) }), jsxRuntime.jsxs(index.NiceButton, { className: GameAsset2dEditor_module.btnPrimary, variant: "primary", onClick: createAnimationFromSelection, style: { marginTop: 8, width: '100%' }, disabled: !animName, children: ["Create from ", api.editorState.selectedFrameIds.length, " frames"] })] })), activeSheet === null || activeSheet === void 0 ? void 0 : activeSheet.animations.map(anim => (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.layerItem, children: [jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: anim.name }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerOpacity, children: [anim.frameIds.length, "f"] }), jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.effectRemove, variant: "ghost", size: "sm", onClick: () => api.removeAnimation(anim.id), children: "\u00D7" })] }, anim.id)))] })] }));
269
+ return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.rightPanel, children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelHeader, children: jsxRuntime.jsxs("span", { children: ["Frames (", (_a = activeSheet === null || activeSheet === void 0 ? void 0 : activeSheet.frames.length) !== null && _a !== void 0 ? _a : 0, ")"] }) }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, style: { maxHeight: 200 }, children: activeSheet === null || activeSheet === void 0 ? void 0 : activeSheet.frames.map(frame => (jsxRuntime.jsxs("div", { className: `${GameAsset2dEditor_module.layerItem} ${api.editorState.selectedFrameIds.includes(frame.id) ? GameAsset2dEditor_module.selected : ''}`, onClick: () => api.selectFrames([frame.id]), children: [jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: frame.name }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerOpacity, children: [frame.width, "\u00D7", frame.height] })] }, frame.id))) }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelHeader, children: jsxRuntime.jsx("span", { children: "Animations" }) }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelContent, children: [api.editorState.selectedFrameIds.length > 0 && (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelSection, children: [jsxRuntime.jsx(NiceButtonDmTHNHet.b, { className: GameAsset2dEditor_module.panelInput, placeholder: "Animation name...", value: animName, onChange: val => setAnimName(val) }), jsxRuntime.jsxs(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.btnPrimary, variant: "primary", onClick: createAnimationFromSelection, style: { marginTop: 8, width: '100%' }, disabled: !animName, children: ["Create from ", api.editorState.selectedFrameIds.length, " frames"] })] })), activeSheet === null || activeSheet === void 0 ? void 0 : activeSheet.animations.map(anim => (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.layerItem, children: [jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: anim.name }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerOpacity, children: [anim.frameIds.length, "f"] }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.effectRemove, variant: "ghost", size: "sm", onClick: () => api.removeAnimation(anim.id), children: "\u00D7" })] }, anim.id)))] })] }));
269
270
  };
270
271
  /* ────────────────────────────────────────────────────────────────
271
272
  ANIMATION STATE MACHINE
@@ -284,7 +285,7 @@ const AnimationStateMachineView = ({ api }) => {
284
285
  }
285
286
  return result;
286
287
  }, [api.project.spriteSheets]);
287
- return (jsxRuntime.jsxs("div", { style: { display: 'flex', flex: 1, overflow: 'hidden' }, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.leftPanel, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelHeader, children: [jsxRuntime.jsx("span", { children: "State Machines" }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.menuBtn, onClick: () => api.createStateMachine('New State Machine'), children: "+ New" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, style: { maxHeight: 150 }, children: api.project.stateMachines.map(sm => (jsxRuntime.jsxs("div", { className: `${GameAsset2dEditor_module.layerItem} ${api.editorState.activeStateMachineId === sm.id ? GameAsset2dEditor_module.selected : ''}`, onClick: () => api.selectStateMachine(sm.id), children: [jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: sm.name }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerOpacity, children: [sm.states.length, " states"] })] }, sm.id))) }), activeSM && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelHeader, children: jsxRuntime.jsx("span", { children: "States" }) }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelContent, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelSection, children: [jsxRuntime.jsx(index.NiceTextInput, { className: GameAsset2dEditor_module.panelInput, placeholder: "State name...", value: newStateName, onChange: val => setNewStateName(val) }), allAnimations.length > 0 && newStateName && (jsxRuntime.jsx(index.NiceSelect, { className: GameAsset2dEditor_module.panelInput, style: { marginTop: 4 }, onChange: val => {
288
+ return (jsxRuntime.jsxs("div", { style: { display: 'flex', flex: 1, overflow: 'hidden' }, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.leftPanel, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelHeader, children: [jsxRuntime.jsx("span", { children: "State Machines" }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.menuBtn, onClick: () => api.createStateMachine('New State Machine'), children: "+ New" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, style: { maxHeight: 150 }, children: api.project.stateMachines.map(sm => (jsxRuntime.jsxs("div", { className: `${GameAsset2dEditor_module.layerItem} ${api.editorState.activeStateMachineId === sm.id ? GameAsset2dEditor_module.selected : ''}`, onClick: () => api.selectStateMachine(sm.id), children: [jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: sm.name }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerOpacity, children: [sm.states.length, " states"] })] }, sm.id))) }), activeSM && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelHeader, children: jsxRuntime.jsx("span", { children: "States" }) }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelContent, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelSection, children: [jsxRuntime.jsx(NiceButtonDmTHNHet.b, { className: GameAsset2dEditor_module.panelInput, placeholder: "State name...", value: newStateName, onChange: val => setNewStateName(val) }), allAnimations.length > 0 && newStateName && (jsxRuntime.jsx(NiceButtonDmTHNHet.a, { className: GameAsset2dEditor_module.panelInput, style: { marginTop: 4 }, onChange: val => {
288
289
  if (val) {
289
290
  api.addState(newStateName, val);
290
291
  setNewStateName('');
@@ -295,7 +296,7 @@ const AnimationStateMachineView = ({ api }) => {
295
296
  value: anim.id,
296
297
  label: `${anim.sheetName}: ${anim.name}`
297
298
  }))
298
- ] }))] }), activeSM.states.map(state => (jsxRuntime.jsxs("div", { className: `${GameAsset2dEditor_module.layerItem} ${api.editorState.selectedStateId === state.id ? GameAsset2dEditor_module.selected : ''} ${activeSM.entryStateId === state.id ? GameAsset2dEditor_module.entry : ''}`, onClick: () => api.selectState(state.id), children: [jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerName, children: [activeSM.entryStateId === state.id && '▶ ', state.name] }), jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.effectRemove, variant: "ghost", size: "sm", onClick: e => {
299
+ ] }))] }), activeSM.states.map(state => (jsxRuntime.jsxs("div", { className: `${GameAsset2dEditor_module.layerItem} ${api.editorState.selectedStateId === state.id ? GameAsset2dEditor_module.selected : ''} ${activeSM.entryStateId === state.id ? GameAsset2dEditor_module.entry : ''}`, onClick: () => api.selectState(state.id), children: [jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerName, children: [activeSM.entryStateId === state.id && '▶ ', state.name] }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.effectRemove, variant: "ghost", size: "sm", onClick: e => {
299
300
  e.stopPropagation();
300
301
  api.removeState(state.id);
301
302
  }, children: "\u00D7" })] }, state.id)))] })] }))] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.stateGraph, children: activeSM ? (jsxRuntime.jsxs("svg", { width: "100%", height: "100%", children: [jsxRuntime.jsx("defs", { children: jsxRuntime.jsx("marker", { id: "arrowhead", markerWidth: "10", markerHeight: "7", refX: "9", refY: "3.5", orient: "auto", children: jsxRuntime.jsx("polygon", { points: "0 0, 10 3.5, 0 7", fill: "#4a5a7e" }) }) }), activeSM.transitions.map(trans => {
@@ -307,12 +308,12 @@ const AnimationStateMachineView = ({ api }) => {
307
308
  }), activeSM.states.map(state => {
308
309
  var _a, _b;
309
310
  return (jsxRuntime.jsx("foreignObject", { x: state.position.x, y: state.position.y, width: 120, height: 50, children: jsxRuntime.jsxs("div", { className: `${GameAsset2dEditor_module.stateNode} ${api.editorState.selectedStateId === state.id ? GameAsset2dEditor_module.selected : ''} ${activeSM.entryStateId === state.id ? GameAsset2dEditor_module.entry : ''}`, onClick: () => api.selectState(state.id), children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.stateNodeName, children: state.name }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.stateNodeAnim, children: (_b = (_a = allAnimations.find(a => a.id === state.animationId)) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : 'No animation' })] }) }, state.id));
310
- })] })) : (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyState, children: jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyStateText, children: "Create a state machine to design animation flows" }) })) }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.rightPanel, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelHeader, children: [jsxRuntime.jsx("span", { children: "Parameters" }), jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: () => api.addParameter('new_param', 'trigger'), disabled: !activeSM, children: "+ Add" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, children: activeSM === null || activeSM === void 0 ? void 0 : activeSM.parameters.map(param => (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.layerItem, children: [jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerOpacity, children: param.type }), jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: param.name }), jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.effectRemove, variant: "ghost", size: "sm", onClick: () => api.removeParameter(param.id), children: "\u00D7" })] }, param.id))) }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelHeader, children: jsxRuntime.jsx("span", { children: "Transitions" }) }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelContent, children: [activeSM === null || activeSM === void 0 ? void 0 : activeSM.transitions.map(trans => {
311
+ })] })) : (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyState, children: jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyStateText, children: "Create a state machine to design animation flows" }) })) }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.rightPanel, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelHeader, children: [jsxRuntime.jsx("span", { children: "Parameters" }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: () => api.addParameter('new_param', 'trigger'), disabled: !activeSM, children: "+ Add" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, children: activeSM === null || activeSM === void 0 ? void 0 : activeSM.parameters.map(param => (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.layerItem, children: [jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerOpacity, children: param.type }), jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: param.name }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.effectRemove, variant: "ghost", size: "sm", onClick: () => api.removeParameter(param.id), children: "\u00D7" })] }, param.id))) }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelHeader, children: jsxRuntime.jsx("span", { children: "Transitions" }) }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelContent, children: [activeSM === null || activeSM === void 0 ? void 0 : activeSM.transitions.map(trans => {
311
312
  var _a, _b;
312
313
  const from = activeSM.states.find(s => s.id === trans.fromStateId);
313
314
  const to = activeSM.states.find(s => s.id === trans.toStateId);
314
- return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.layerItem, children: [jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerName, children: [(_a = from === null || from === void 0 ? void 0 : from.name) !== null && _a !== void 0 ? _a : '?', " \u2192 ", (_b = to === null || to === void 0 ? void 0 : to.name) !== null && _b !== void 0 ? _b : '?'] }), jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.effectRemove, variant: "ghost", size: "sm", onClick: () => api.removeTransition(trans.id), children: "\u00D7" })] }, trans.id));
315
- }), api.editorState.selectedStateId && (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelSection, style: { marginTop: 12 }, children: [jsxRuntime.jsx("label", { className: GameAsset2dEditor_module.panelLabel, children: "Add transition to:" }), jsxRuntime.jsx(index.NiceSelect, { className: GameAsset2dEditor_module.panelInput, onChange: val => {
315
+ return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.layerItem, children: [jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerName, children: [(_a = from === null || from === void 0 ? void 0 : from.name) !== null && _a !== void 0 ? _a : '?', " \u2192 ", (_b = to === null || to === void 0 ? void 0 : to.name) !== null && _b !== void 0 ? _b : '?'] }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.effectRemove, variant: "ghost", size: "sm", onClick: () => api.removeTransition(trans.id), children: "\u00D7" })] }, trans.id));
316
+ }), api.editorState.selectedStateId && (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelSection, style: { marginTop: 12 }, children: [jsxRuntime.jsx("label", { className: GameAsset2dEditor_module.panelLabel, children: "Add transition to:" }), jsxRuntime.jsx(NiceButtonDmTHNHet.a, { className: GameAsset2dEditor_module.panelInput, onChange: val => {
316
317
  if (val && api.editorState.selectedStateId) {
317
318
  api.addTransition(api.editorState.selectedStateId, val);
318
319
  }
@@ -341,7 +342,7 @@ const EffectsView = ({ api }) => {
341
342
  { type: 'shadow', label: 'Shadow' },
342
343
  { type: 'palette-swap', label: 'Palette Swap' },
343
344
  ];
344
- return (jsxRuntime.jsxs("div", { style: { display: 'flex', flex: 1, overflow: 'hidden' }, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.leftPanel, children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelHeader, children: jsxRuntime.jsx("span", { children: "Add Effect" }) }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, children: effectTypes.map(({ type, label }) => (jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.layerItem, variant: "ghost", onClick: () => api.addEffect(type), style: { cursor: 'pointer', border: 'none', textAlign: 'left' }, children: jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: label }) }, type))) }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelHeader, children: jsxRuntime.jsx("span", { children: "Presets" }) }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelContent, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelSection, children: [jsxRuntime.jsx(index.NiceTextInput, { className: GameAsset2dEditor_module.panelInput, placeholder: "Preset name...", value: presetName, onChange: val => setPresetName(val) }), jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.btnSecondary, variant: "ghost", style: { marginTop: 4, width: '100%' }, onClick: () => {
345
+ return (jsxRuntime.jsxs("div", { style: { display: 'flex', flex: 1, overflow: 'hidden' }, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.leftPanel, children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelHeader, children: jsxRuntime.jsx("span", { children: "Add Effect" }) }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, children: effectTypes.map(({ type, label }) => (jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.layerItem, variant: "ghost", onClick: () => api.addEffect(type), style: { cursor: 'pointer', border: 'none', textAlign: 'left' }, children: jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: label }) }, type))) }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelHeader, children: jsxRuntime.jsx("span", { children: "Presets" }) }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelContent, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelSection, children: [jsxRuntime.jsx(NiceButtonDmTHNHet.b, { className: GameAsset2dEditor_module.panelInput, placeholder: "Preset name...", value: presetName, onChange: val => setPresetName(val) }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.btnSecondary, variant: "ghost", style: { marginTop: 4, width: '100%' }, onClick: () => {
345
346
  if (presetName) {
346
347
  api.saveEffectPreset(presetName);
347
348
  setPresetName('');
@@ -354,7 +355,7 @@ const EffectsView = ({ api }) => {
354
355
  const StatusBar = ({ api }) => {
355
356
  const activeMap = api.project.tileMaps.find(m => m.id === api.editorState.activeTileMapId);
356
357
  const activeSheet = api.project.spriteSheets.find(s => s.id === api.editorState.activeSpriteSheetId);
357
- return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.statusBar, children: [jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.statusItem, children: ["Mode: ", api.editorState.mode] }), api.editorState.mode === 'tilemap' && activeMap && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.statusItem, children: ["Map: ", activeMap.name, " (", activeMap.width, "\u00D7", activeMap.height, ")"] }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.statusItem, children: ["Tile: ", activeMap.tileWidth, "\u00D7", activeMap.tileHeight, "px"] })] })), api.editorState.mode === 'spritesheet' && activeSheet && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.statusItem, children: ["Sheet: ", activeSheet.name] }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.statusItem, children: ["Selected: ", api.editorState.selectedFrameIds.length, " frames"] })] })), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.zoomControl, children: [jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.zoomBtn, variant: "ghost", size: "sm", onClick: () => api.setZoom(api.editorState.zoom - 0.25), children: "\u2212" }), jsxRuntime.jsxs("span", { children: [Math.round(api.editorState.zoom * 100), "%"] }), jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.zoomBtn, variant: "ghost", size: "sm", onClick: () => api.setZoom(api.editorState.zoom + 0.25), children: "+" }), jsxRuntime.jsx(index.NiceButton, { className: GameAsset2dEditor_module.zoomBtn, variant: "ghost", size: "sm", onClick: () => api.setZoom(1), children: "\u2299" })] })] }));
358
+ return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.statusBar, children: [jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.statusItem, children: ["Mode: ", api.editorState.mode] }), api.editorState.mode === 'tilemap' && activeMap && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.statusItem, children: ["Map: ", activeMap.name, " (", activeMap.width, "\u00D7", activeMap.height, ")"] }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.statusItem, children: ["Tile: ", activeMap.tileWidth, "\u00D7", activeMap.tileHeight, "px"] })] })), api.editorState.mode === 'spritesheet' && activeSheet && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.statusItem, children: ["Sheet: ", activeSheet.name] }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.statusItem, children: ["Selected: ", api.editorState.selectedFrameIds.length, " frames"] })] })), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.zoomControl, children: [jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.zoomBtn, variant: "ghost", size: "sm", onClick: () => api.setZoom(api.editorState.zoom - 0.25), children: "\u2212" }), jsxRuntime.jsxs("span", { children: [Math.round(api.editorState.zoom * 100), "%"] }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.zoomBtn, variant: "ghost", size: "sm", onClick: () => api.setZoom(api.editorState.zoom + 0.25), children: "+" }), jsxRuntime.jsx(NiceButtonDmTHNHet.c, { className: GameAsset2dEditor_module.zoomBtn, variant: "ghost", size: "sm", onClick: () => api.setZoom(1), children: "\u2299" })] })] }));
358
359
  };
359
360
  /* ────────────────────────────────────────────────────────────────
360
361
  MAIN COMPONENT